package com.webserver.core;

import com.webserver.http.HttpServletRequest;
import com.webserver.http.HttpServletResponse;

import java.io.*;
import java.net.Socket;
import java.util.HashMap;
import java.util.Map;

/*
    线程任务
    负责与特点的客户端进行HTTP交互.
* */
public class ClientHandler implements Runnable {
    private Socket socket;

    public ClientHandler(Socket socket) {
        this.socket = socket;
    }

    public void run() {
        try {
            //http://localhost:8088/myweb/index.html
            //http://localhost:8088/myweb/classTable.html

            //1解析请求
            HttpServletRequest request = new HttpServletRequest(socket);
            HttpServletResponse response = new HttpServletResponse(socket);
            //2处理请求
            DispatcherServlet servlet = DispatcherServlet.getInstance();
            servlet.service(request,response);
            //3发送响应
            //将./webapps/myweb/index.html 相应个服务器"./webapps"+path
            //发送响应

            response.response();

            } catch(IOException e){
                e.printStackTrace();
            } finally{
                try {
                    //响应后断开连接
                    socket.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }

            }

        }

    }
